#ifndef PREFERENCEDAO_H_
#define PREFERENCEDAO_H_

#include "../../model/Preference.h"

class PreferenceDAO {
public:
	virtual void save(const Preference& preference) = 0;
	virtual void update(const Preference& preference) = 0;
	virtual void remove(const Preference& preference) = 0;
	virtual Preference loadPreferenceById(int id) = 0;
	virtual std::list<Preference>
	loadUserPreferences(const User& user) = 0;
	virtual std::list<Preference> loadAll() = 0;
	virtual ~PreferenceDAO() {
	}

protected:
	PreferenceDAO() {
	}
};

#endif /* PREFERENCEDAO_H_ */
